package interface01;

import java.util.ArrayList;

//泛型限定：意思是对泛型数据类型进行范围的限制
//1、任意类型 2、制定类型或者指定类型的子类 3、指定类型或者指定类型的父类
public class Test {
    public static void main(String[] args) {
        //1、集合中不管是什么类型的数据，test1都能接收
        ArrayList<BWN> list1 = new ArrayList<>();
        ArrayList<BWN> list2 = new ArrayList<>();
        ArrayList<String> list3 = new ArrayList<>();
        test1(list1);
        test1(list2);
        test1(list3);
        //2、集合中的元素只能是Car类或者是Car的子类类型，才能被test3方法接收
    }
    public static void test1(ArrayList<?> list){

    }
    public static void test2(ArrayList<? extends Car> list){

    }
    public static void test3(ArrayList<? super Car> list){

    }
}
class Car{}
class BWN extends Car{}
class BENZE extends Car{}
